package com.xlh.dto.user;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.util.Date;
import java.util.List;

/**
 * 用户全部信息
 * <p>
 * Created by lx on 2019/1/28.
 */
@Data
@Accessors(chain = true)
public class UserInfoDTO {

    @ApiModelProperty(value = "用户id")
    private Long id;

    @ApiModelProperty(value = "姓名")
    private String name;

    @ApiModelProperty(value = "学号/工号")
    private String userNumber;

    @ApiModelProperty(value = "性别 1：男 2：女")
    private Integer sex;

    @ApiModelProperty(value = "性别名")
    private String sexName;

    @ApiModelProperty(value = "角色")
    private Integer role;

    @ApiModelProperty(value = "角色名称")
    private String roleName;

    @ApiModelProperty(value = "角色英文标识")
    private String roleCode;

    @ApiModelProperty(value = "手机号")
    private String telephoneNumber;

    @ApiModelProperty(value = "电子邮箱")
    private String email;

    @ApiModelProperty(value = "邮箱是否能被学生查看到开关 false：关  true：开")
    private Boolean showEmail;

    @ApiModelProperty(value = "头像名")
    private String icon;

    @ApiModelProperty(value = "头像地址")
    private String iconPath;

    @JsonIgnore
    @ApiModelProperty(value = "密码")
    private String password;

    @ApiModelProperty(value = "状态： 1： 开通成功  2：销户（销户时，只是不能登录，其他数据都不进行删除）  3：删除")
    private Integer status;

    @ApiModelProperty(value = "状态代表的含义")
    private String statusName;

    @ApiModelProperty(value = "省份")
    private String province;

    @ApiModelProperty(value = "学校名称")
    private String schoolName;

    @ApiModelProperty(value = "申请人")
    private String applicant;

    @ApiModelProperty(value = "创建时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy/MM/dd")
    private Date createTime;

    @ApiModelProperty(value = "销毁时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy/MM/dd")
    private Date destroyTime;

    @ApiModelProperty(value = "是否允许被修改 true：是  false：否")
    private Boolean allowedModified = true;

//    @JsonIgnore
    @ApiModelProperty(value = "班级id")
    private Long classId;

    @ApiModelProperty(value = "学生的班级名称")
    private String studentClassName;

    @ApiModelProperty(value = "课程方向权限隐藏的id集合")
    private List<Integer> courseDirectionHideIds;

    @ApiModelProperty(value = "额外消息")
    private Integer userExtendId;
    @ApiModelProperty(value = "标识")
    private Integer falg;

    @ApiModelProperty(value = "年级")
    private String grade;

    public UserInfoDTO(Long id) {
        this.id = id;
    }
    public UserInfoDTO() {
    }
}
